//
//  VisitorLoginView.swift
//  HMWeibo06
//
//  Created by apple on 15/5/10.
//  Copyright (c) 2015年 heima. All rights reserved.
//

import UIKit

// 协议方法
/**
    定义协议，需要遵守 NSObjectProtocol
    在 swift 中，除了类可以遵守协议，结构体同样可以
*/

// 所有继承自 NSObject 的对象，都可以实现协议方法
// protocol VisitorLoginViewDelegate <NSObject>
protocol VisitorLoginViewDelegate: NSObjectProtocol {
    // 点击登录按钮
    func visitorViewLoginViewDidSelected()
    // 点击注册按钮
    func visitorViewRegiesterViewDidSelected()
}

class VisitorLoginView: UIView {

    @IBOutlet weak var smallIconView: UIImageView!
    @IBOutlet weak var iconView: UIImageView!
    @IBOutlet weak var messageLabel: UILabel!
    
    // 定义代理（weak）
    weak var delegate: VisitorLoginViewDelegate?
    
    // 首页不需要其他页面需要
    // 传递参数的时候，可以指定一个默认值，好处，不需要到处修改代码
    func setupInfo(imageName: String, message: String, isHome: Bool = false) {
        
        iconView.hidden = !isHome
        
        if isHome {
            println("来到首页 \(smallIconView.layer.animationKeys())")
            iconView.image = UIImage(named: imageName)
            
            startAnimation()
//            if smallIconView.layer.animationForKey("rotationAnim") == nil {
//                println("开始动画")
//                startAnimation()
//            }
        } else {
            smallIconView.image = UIImage(named: imageName)
        }
        
        messageLabel.text = message
    }
    
    /**
    开始动画
    */
    func startAnimation() {
        println(__FUNCTION__)
        
        let anim = CABasicAnimation(keyPath: "transform.rotation")
        
        anim.toValue = 2 * M_PI
        anim.repeatCount = MAXFLOAT
        anim.duration = 5.0
        // 动画完成后，是否将动画从图层中删除，默认是 true
//        anim.removedOnCompletion = false
        
        // 在像图层中，添加动画时，如果指定了 key，图层会对动画强引用
        smallIconView.layer.addAnimation(anim, forKey: "rotationAnim")
    }
    
    @IBAction func register() {
        delegate?.visitorViewRegiesterViewDidSelected()
    }
    
    @IBAction func login() {
        delegate?.visitorViewLoginViewDidSelected()
    }
}
